home *** CD-ROM | disk | FTP | other *** search
- include lmacros.h
- assume ds:dataseg
- extrn _Dorg_:byte
- extrn Sssave:word,Spsave:word,Intstk_:byte
-
- ifdef FARPROC
- extrn hsint_:far,doret:far
- else
- extrn hsint_:near,doret:far
- endif
-
- ; hs0vec - high speed modem #0 interrupt handler
- public hs0vec_
-
- dbase dw seg _Dorg_ ; save loc for ds (must be in code segment)
-
- hs0vec_ proc far
- push ds ; save on user stack
- mov ds,cs:dbase ; establish interrupt data segment
-
- mov Sssave,ss ; stash user stack context
- mov Spsave,sp
-
- mov ss,cs:dbase
- lea sp,Intstk_+512
-
- push ax ; save user regs on interrupt stack
- push bx
- push cx
- push dx
- push bp
- push si
- push di
- push es
- push ds
- pop es
-
- mov ax,0 ; arg for service routine
- push ax
- call hsint_
- pop ax
- jmp doret
- hs0vec_ endp
-
- end
-